(1) Field of the Invention
The present invention relates to a moving picture coding method and a moving picture decoding method.
(2) Description of the Related Art
In moving picture coding processing, a quantity of information is generally reduced using redundancy of moving pictures in spatial and temporal directions. Here, a general method using the redundancy in the spatial direction is represented by the transformation into frequency domain while a general method using the redundancy in the temporal direction is represented by an inter-picture prediction (hereinafter referred to as inter prediction) coding process. In the inter prediction coding process, when coding a certain picture, a coded picture located before or after the current picture to be coded in display time order is used as a reference picture. Subsequently, a motion vector of the current picture with respect to the reference picture is derived by motion estimation, and a difference between image data of the current picture and prediction picture data resulting from motion compensation based on the motion vector is calculated to remove the redundancy in the temporal direction. Here, in the motion estimation, a difference value between a current block to be coded in the current picture and a block in the reference picture is calculated, and a block having the smallest difference value in the reference picture is determined as a reference block. The motion vector is then estimated using the current block and the reference block.
In the moving picture coding scheme (see Non Patent Reference: ITU-T H.264 03/2010) called H.264, which has already been standardized, three types of picture, I-picture, P-picture, and B-picture, are used to compress the information amount. The I-picture is a picture on which no inter prediction coding is performed, that is, on which a coding process using intra-picture prediction (hereinafter referred to as intra prediction) is performed. The P-picture is a picture on which the inter prediction coding is performed with reference to one coded picture located before or after the current picture in display time order. The B-picture is a picture on which the inter prediction coding is performed with reference to two coded pictures located before or after the current picture in display time order.
In the inter prediction coding, a reference picture list for identifying a reference picture is generated. The reference picture list is a list in which reference picture indexes are allocated to coded reference pictures to be referred to in the inter prediction. For example, two reference lists correspond to the B-picture which is used for coding with reference to two pictures. A reference picture is identified from the reference picture list, using a reference picture index of the reference picture.
FIG. 1A illustrates allocation of reference picture indexes to reference pictures. Each of FIGS. 1B and 1C indicates an example of a reference picture list corresponding to the B-picture.
In FIG. 1A, a case is assumed where, for instance, a reference picture 3, a reference picture 2, a reference picture 1, and a current picture to be coded are arranged in display order. In this case, a reference picture list 1 (hereafter referred to as a reference list L0) is an example of a reference picture list in a prediction direction 1 for bidirectional prediction. As shown in FIG. 1B, a value “0” of a reference picture index 1 is allocated to the reference picture 1 in a display order 2, a value “1” of the reference picture index 1 is allocated to the reference picture 2 in a display order 1, and a value “2” of the reference picture index 1 is allocated to the reference picture 3 in a display order 0. In other words, the reference picture indexes are allocated in order of proximity to the current picture in display order. On the other hand, a reference picture list 2 (hereafter referred to as a reference list L1) is an example of a reference picture list in a prediction direction 1 for bidirectional prediction. As shown in FIG. 1C, a value “0” of a reference picture index 2 is allocated to the reference picture 1 in a display order 1, a value “1” of the reference picture index 2 is allocated to the reference picture 2 in a display order 2, and a value “2” of the reference picture index 1 is allocated to the reference picture 3 in a display order 0. As such, a different reference picture index can be allocated to each of the reference pictures, according to the prediction direction (the reference pictures 1 and 2 in FIG. 1A), and the same reference picture index can be allocated to the reference picture (the reference picture 3 in FIG. 1A). In coding the B-picture, the inter prediction is performed using a motion vector (mvL0) that refers to a reference picture identified by the reference picture index 1 in the reference list L0 and a motion vector (mvL1) that refers to a reference picture identified by the reference picture index 2 in the reference list L1. In the case of the P-picture, one reference list is used.
Furthermore, in the moving picture coding scheme called H. 264, a coding mode which is referred to as temporal direct can be selected to derive a motion vector in coding the B-picture. The inter prediction coding process in temporal direct is described with reference to FIG. 2. FIG. 2 is a schematic diagram showing a motion vector in temporal direct, and illustrates a case where a block “a” of a picture B2 is coded in the temporal direct. In this case, a motion vector “a” is used which has been used to code a block “b”, co-located with the block “a”, in a picture P3 serving as a reference picture located after the picture B2. The motion vector “a” is a motion vector which has been used to code the block “b” and refers to a picture P1. The block “a” is coded using bidirectional prediction with reference to reference blocks which are obtained, using motion vectors parallel to the motion vector “a”, from the picture P1 serving as a forward reference picture and the picture P3 serving as a backward reference picture. This means that the motion vector to be used in coding the block “a” is the motion vector “b” for the picture P1 and a motion vector “c” for the picture P3.